/*
 * Explode.java
 *
 * Created on 2007. m�rcius 25., 15:24
 *
 */

package lemmingsproto;

/**
 *
 * @author attila
 * Robban� tulajdons�g
 */
public class Explode extends Tool {
    
    private int ttl;
    
    private static int num;

    private Lemming parent;
    
     /** 
      * Konstruktor 
     * @param home
     * Az a lemming amihez ez az eszk�z tartozik
     */
    public Explode(Lemming home) {
    	System.out.println("lemming_explode_start "+parent.getId());
        num--;
        ttl=2;
        parent=home;
    }
    /**
     * Konstruktor
     */
    public Explode() {
        num--;
        ttl=2;
    }
         /**
     * Be�ll�ja, hogy az eszk�z melyik lemminghez tartozik 
     * @param l
     * A lemming
     */
    public void setLemming(Lemming l) {
        //Jo ez itt? Mi van ha nem jo konstruktort hivunk?
        System.out.println("lemming_explode_start ");
        this.parent=l;
    }    
        
     /**
     * Az Explode action f�ggv�nye
     * @param f
     * A mez� amelyen a lemming �ll
     */
    public void action(Field f) {
    	if(ttl>0) {
    		ttl--;
    		parent.dir.action(f);
    	}
    	else {
            Field tmpf;
    		System.out.println("lemming_explode "+parent.getId());
    		f.killLemmings();
                for (int i=0; i<4; i++) {
                    tmpf=f.getNeighbour(0);
                    if (tmpf!=null) {
                        tmpf.killLemmings();
                        tmpf.setProp(new Empty(tmpf));
                    }
                }
    		// Hogy adjuk vissza a kinyirt lemmingeket? 
    		// Kell egyaltalan tudnunk, hogy hany lemming doglott meg?
    	}
        return;
    }
     /**
     * Be�ll�tja, hogy az eszk�zb�l h�ny db. �ll rendelkez�sre
     * @param n
     * A rendelkez�sre �ll� eszk�z�k sz�ma
     */
    public static void setNum(int n) {
        num=n;
        return;
    }
    
     /**
     * @return
     * A rendelkez�sre �ll� eszk�z�k sz�ma
     */
    public static int getNum() {
        return num;
    }
    
}
